/* 
Vuex 允许我们将 store 分割成模块（module）。
每个模块拥有自己的 state、mutation、action、getter
每个模块其实是一个对象,暴露出去将来放在new Vuex.Store的配置项中 
*/

export default{
  namespaced:true ,


  state: {
    count: 15,
  },


  getters: {
    doubleCount(state) {
      return state.count * 2;
    },
  },


  mutations: {
    increment(state) {
      state.count++;
    },

    //每次加n
    incrementN(state, { n }) {
      state.count += n;
    },
  },


  actions:{
    incrementWait({ commit }) {
      setTimeout(() => {
        commit("increment");
      }, 1000);
    },

    incrementNWait({ commit }, payload) {
      setTimeout(() => {
        commit("incrementN", payload);
      }, 1000);
    },
  }
}